home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / dalla rivista / host contacted / jikes.lha / jikes-1.11 / src / jcl / jcl_iclass.h < prev    next >
C/C++ Source or Header  |  1999-11-04  |  3KB  |  70 lines

  1. // $Id: jcl_iclass.h,v 1.1 1999/11/04 18:48:03 shields Exp $
  2. //
  3. // This software is subject to the terms of the IBM Jikes Compiler
  4. // License Agreement available at the following URL:
  5. // http://www.ibm.com/research/jikes.
  6. // Copyright (C) 1996, 1998, International Business Machines Corporation
  7. // and others.  All Rights Reserved.
  8. // You must accept the terms of that agreement to use this software.
  9. //
  10. #ifndef jcl_iclass_INCLUDED
  11. #define jcl_iclass_INCLUDED
  12. #include <stdio.h>
  13. #include "jcl_class.h"
  14.  
  15. class InputClassFile : public ClassFile
  16. {
  17. private:
  18. public:
  19.  
  20.  
  21.     FILE *classfile;
  22.  
  23.     u1 get_u1();
  24.     u2 get_u2();
  25.     u4 get_u4();
  26.  
  27.     CONSTANT_Class_info *get_CONSTANT_Class(u1 &tag);
  28.     CONSTANT_Fieldref_info *get_CONSTANT_Fieldref(u1 &tag);
  29.     CONSTANT_Methodref_info *get_CONSTANT_Methodref(u1 &tag);
  30.     CONSTANT_InterfaceMethodref_info *get_CONSTANT_InterfaceMethodref(u1 &tag);
  31.     CONSTANT_String_info *get_CONSTANT_String(u1 &tag);
  32.     CONSTANT_Integer_info *get_CONSTANT_Integer(u1 &tag);
  33.     CONSTANT_Float_info *get_CONSTANT_Float(u1 &tag);
  34.     CONSTANT_Long_info *get_CONSTANT_Long(u1 &tag);
  35.     CONSTANT_Double_info *get_CONSTANT_Double(u1 &tag);
  36.     CONSTANT_NameAndType_info *get_CONSTANT_NameAndType(u1 &tag);
  37.     CONSTANT_Utf8_info *get_CONSTANT_Utf8(u1 &tag);
  38.     cp_info *get_cp_info();
  39.         void reset(){           // reset to empty state.
  40.                 constant_pool.reset();
  41.                 fields.reset();
  42.                 methods.reset();
  43.                 attributes.reset();
  44.                 classfile = (FILE *)0;
  45.                 this_class = super_class = 0;
  46.         }
  47.     SourceFile_attribute *get_SourceFile_attribute(u2 &name_index, u4 &length);
  48.     Exceptions_attribute *get_Exceptions_attribute(u2 &name_index, u4 &length);
  49.     ConstantValue_attribute *get_ConstantValue_attribute(u2 &name_index, u4 &length);
  50.     Code_attribute *get_Code_attribute(u2 &name_index, u4 &length);
  51.     LineNumberTable_attribute *get_LineNumberTable_attribute(u2 &name_index, u4 &length);
  52.     LocalVariableTable_attribute *get_LocalVariableTable_attribute(u2 &name_index, u4 &length);
  53.     Synthetic_attribute *get_Synthetic_attribute(u2 &name_index, u4 &length);
  54.     Deprecated_attribute *get_Deprecated_attribute(u2 &name_index, u4 &length);
  55.     InnerClasses_attribute *get_InnerClasses_attribute(u2 &name_index, u4 &length);
  56.     GenericAttribute_info *get_GenericAttribute(u2 &name_index, u4 &length);
  57.     attribute_info *get_attribute_info();
  58.         
  59.     void get_field_info(field_info &f);
  60.     void get_method_info(method_info &f);
  61.  
  62. public:
  63.         InputClassFile() {};
  64.     InputClassFile(char* filename);
  65.     ~InputClassFile();
  66. };
  67.  
  68.  
  69. #endif
  70.